As companies rely more on websites and web applications to reach consumers, increasing the quality of user experiences with those websites has become important. Part of the user experience is the responsiveness, or performance, of the website. It has been understood for some time that a user's perception of a website's performance is directly tied to the time between requesting a web page and when the user believes the page to be loaded and usable.
Web browsers, or simply browsers, often make the request for a web page and then download and render the content from a company's web servers. Currently there are a variety of browsers, each with a variety of rendering engines; where a rendering engine generally accepts some input to create graphical output on a display, such as a computer or smartphone screen. A browser may include a rendering engine for Hypertext Markup Language (“HTML”), one or more engines for a variety of scripting languages (e.g., Javascript), and possibly engines for other browser integrated technologies (e.g., Adobe® Systems Inc. Flash®). Different rendering engines may or may not conform to a technology specification, and may perform the rendering (or interpreting in the case of script languages) steps in different orders or in different ways.
Currently, measuring the response times of web pages in a browser involves measuring the time from a web page request to a content server to a browser based event during the rendering of the web page. These events typically include when elements, or the entirety of the content, are downloaded from the network, when an object in the page is rendered, or when a script may be run. Using scripts to measure the response time of a web page often involves placing timing scripts throughout the web page, the timing scripts recording a time when the scripts are run by the browser.